package com.jy.wms.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jy.wms.common.UUIDUtils;
import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.dao.WmsShippedBillsMapper;
import com.jy.wms.pojo.WmsShippedBills;
import org.springframework.stereotype.Service;

import java.util.List;

/**
* @ClassName: WmsShippedBillsService.java
* @Description: 发运账单汇总表
* @Author YJS
* @Date Fri Aug 31 12:00:16 GMT+08:00 2018
*/

@Service
public class WmsShippedBillsService extends BaseService<WmsShippedBillsMapper,WmsShippedBills> {

 /**
 * 插入一条记录
 * @param entity 实体对象
 * @return int
 */
public Integer baseInsert( WmsShippedBills entity){
     return dao.baseInsert( entity );
}

/**
* 插入一条记录（匹配有值的字段）
* @param entity 实体对象
* @return int
*/
public Integer baseInsertSelective( WmsShippedBills entity){
     return dao.baseInsertSelective( entity);
}

/**
* 删除（根据主键ID删除）
* @param id 主键
* @return int
*/
public Integer baseDeleteByPrimaryKey( String id){
     return dao.baseDeleteByPrimaryKey( id);
}

/**
* 删除（根据ID 批量删除）
* @param idList 主键ID列表
* @return int
*/
public Integer baseDeleteBathPrimaryKeys( List<String> idList){
     return dao.baseDeleteBathPrimaryKeys( idList );
}

/**
* 分页查询
* @param entity 实体
* @return Page<WmsShippedBills>
*/
@BaseServiceDescribe(moduleName = "做账汇总管理",btnName = "分页查询做账汇总")
public Page<WmsShippedBills> baseSelectPage(WmsShippedBills entity ) throws Exception{
    try {
        PageHelper.startPage(entity.getPage(), entity.getRows());
        return (Page<WmsShippedBills>) dao.baseSelectPage(entity);
    }catch (Exception e){
        throw new ServiceException("查询做账汇总失败",e);
    }
}

/**
* 查询（根据主键ID查询）
* @param id 主键ID
* @return WmsShippedBills
*/
public WmsShippedBills baseSelectByPrimaryKey(String id ){
     return dao.baseSelectByPrimaryKey( id );
}

/**
* 查询（根据ID 批量查询）
* @param idList 主键ID列表
* @return list
*/
public Integer baseSelectBathPrimaryKeys( List<WmsShippedBills> idList ){
     return dao.baseSelectBathPrimaryKeys( idList );
}

/**
*修改 （匹配有值的字段）
* @param entity 主键ID列表
* @return int
*/
public Integer baseUpdateByPrimaryKeySelective( WmsShippedBills entity){
     return dao.baseUpdateByPrimaryKeySelective( entity);
}

/**
*修改（根据主键ID修改）
* @param entity 主键ID列表
* @return int
*/
public Integer baseUpdateByPrimaryKey( WmsShippedBills entity){
     return dao.baseUpdateByPrimaryKey( entity);
}
    /**
     * 发运账单汇总报表
     * @param id 发运订单id
     * @param hzid 货主id
     * @param ckid 仓库id
     */
    public String addAccounts(String id,String hzid,String ckid) throws Exception{
        String zbid="";
        //查询发运订单数据
        WmsShippedBills wmsShippedBills=dao.searchFydd(id);
        if(wmsShippedBills!=null){
            zbid= UUIDUtils.uuid();
            wmsShippedBills.setId(zbid);
            wmsShippedBills.setHzid(hzid);
            wmsShippedBills.setCkid(ckid);
            Integer i=dao.baseInsert( wmsShippedBills );
            if(i<=0){
                throw new RuntimeException("发运统计添加失败");
            }
        }else{
            throw new RuntimeException("发运统计查询失败");
        }
        return zbid;
    }

    /**
     * 导出查询
     * @param entity
     * @return
     */
    public List<WmsShippedBills> wmsShippedBillsExport(WmsShippedBills entity){
        return  dao.baseSelectPage(entity);
    }
}
